package com.util;

import java.io.InputStream;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import com.test.TestUser;

public class MyBatisUtil {
	
	public static SqlSessionFactory getSqlSessionFactory(){
		String resource = "conf.xml";  //mybatis配置文件
		//使用类加载器加载mybatis的配置文件（它也加载关联的映射文件）
		InputStream in = TestUser.class.getClassLoader().getResourceAsStream(resource);
		
		SqlSessionFactory factory  = new SqlSessionFactoryBuilder().build(in);
		return factory;
	}
	
	public static SqlSession getSqlSession(){
		return getSqlSessionFactory().openSession();
	}
	
	/**
	 * 
	 * @param isAutoCommit 
	 * 			true 表示创建的SqlSession对象在执行完SQL之后会自动提交事务
	 *          false 表示创建的SqlSession对象在执行完SQL之后不会自动提交事务，这时就需要我们手动调用sqlSession.commit()提交事务
	 * @return
	 */
	public static SqlSession getSqlSession(boolean isAutoCommit){
		return getSqlSessionFactory().openSession(isAutoCommit);
	}
}
